vsftpd 虚拟用户的演示
-
创建一个与虚拟用户对应的本地用户,并且设置为不可登录
useradd vuser -d /data/ftp -s /sbin/nologin -
创建虚拟用户的用户名密码,如创建
vuser.temp文件,内容如下所示# /etc/vsftpd/vuser.temp u1 123456 u2 1234567 u3 12345678由于vsftp使用的是pam工具进行用户信息的比对,所以需要将上面的vuser.temp经pam转化为pam可识别的db文件,使用
db_load命令如下db_load -T -t hash -f /etc/vsftpd/vuser.temp /etc/vsftpd/vuser.db # 给这个文件600权限 chmod 600 /etc/vsftpd/vuser.db接下来创建pam需要加载的配置文件,将前面步骤创建的信息进行关联
# vi /etc/pam.d/vsftpd.vuser auth sufficient /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/vuser account sufficient /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/vuser -
创建虚拟用户的权限,为了方便管理,创建一个新目录
/etc/vsftpd/vuserconfig用于管理虚拟用户权限,如果我们为u1配置权限,创建文件u1,u1文件内容如下# /etc/vsftpd/vuserconfig/u1 local_root=/data/ftp write_enable=YES anon_umask=022 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES download_enable=YES -
修改vsftpd服务的主配置文件
# vi /etc/vsftpd/vsftpd.conf listen_ipv6=YES # 如果有 则打开注释,否则手动添加下面的信息 guest_enable=YES guest_username=vuser allow_writeable_chroot=YES # 虚拟用户权限控制 user_config_dir=/etc/vsftpd/vuserconfig # 修改原来pam_service_name=vsftpd pam_service_name=vsftpd.vuser # pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES -
测试,在/data/ftp 目录下创建测试文件,命令ftp localhost 在u1用户登录下,看是否可以查看对测试文件
ftp localhost如果没有创建
/etc/vsftpd/vuserconfig/u2,/etc/vsftpd/vuserconfig/u3,测试结果是可以登录成功,但文件夹为空
至此,vsftpd虚拟用户的服务已经配置完毕